A “virtual machine” (VM) is a “completely isolated guest operating system installation within a normal host operating system”. A VM is a software implementation of a machine (e.g. a computer) that executes programs like a physical machine. Today, virtual machines are implemented with software emulation, hardware virtualization or (most commonly) both together. “Hardware virtualization” (or platform virtualization) refers to the creation of a virtual machine that acts like a real computer with an operating system. Software executed on these virtual machines is separated from the underlying hardware resources.
A VM is typically run by an operator for a subscriber, who has a contract (subscription) with the operator. The operating system and software of the VM are determined by the subscriber, and the VM image (the VM “image” is, the pre-configured operating system binaries and metadata, (e.g., amount of RAM required) of the VM) is created by the subscriber and hence is untrustworthy from the operator's viewpoint.
There exist multiple solutions for providing virtualization platform for virtual machines. In these systems multiple virtual machines can be run on one physical machine. The abstraction of unlimited and dynamically allocated resources is called a cloud platform or just a cloud.
The operators are increasingly moving to becoming bit-pipe providers for over the top services and this is not a wanted position for them; they want to provide services. The installed identity management system is one thing that can be used for providing new services in the form of Identity and Access Management (IAM) and security for various services.
There are a number of problems with existing solutions. Some of the key resources of operators are the customer base and the identity management for the customers as well as the installed infrastructure. The business is based on standardized 3GPP mechanisms for charging, Quality of Service (QoS), security, roaming, interoperability, Service Level Agreements (SLAs) etc. Similar kinds of standards are pretty much missing from the cloud technologies. This makes it hard for operators to integrate their key resources with cloud platforms. In other words, the problem is how operators can benefit from their existing key resources with cloud computing. Therefore, it is also difficult to estimate how much operators can benefit from the cloud-computing paradigm and enter into new business fields.
VM Migration is used, e.g., for load-balancing reasons and elasticity during peak-hours. Typically, VM is transferred (migrated) to some other cloud that has a better resource situation. A VM may also be migrated between different hosts within a cloud.
In the case of a VM running on the Xen hypervisor, an administrator can “live migrate” a Xen VM between physical hosts across a LAN (local area network) without loss of availability. During this procedure, the LAN iteratively copies the memory of the VM to the destination without stopping its execution. The process requires a stoppage of around 60-300 ms to perform final synchronization before the VM begins executing at its final destination, providing an illusion of seamless migration. Similar technology can serve to suspend running of a VM to disk and switch to another VM, resuming the first VM at a later date—see http://en.wikipedia.org/wiki/Xen as downloaded on 14 Oct. 2011.
FIG. 18 shows the principal steps in a known “live migration” method. This is a “pre-copy” migration in which the VM memory is copied to the new location before the VM is migrated.
Initially at step (a) all memory pages of a VM executing on one hypervisor (hypervisor B), are copied to another hypervisor (hypervisor B). This step will take a finite time during which it is to be expected that some memory pages of the VM will have been updated. Pages that are updated during the copying of step (a) are known as “dirty pages” and, at step (b), all dirty pages—that is, all pages that were updated during the duration of step (a)—are copied to hypervisor B. More pages will become dirty during step (b), and the process of copying dirty pages to hypervisor B is therefore repeated as often as necessary at step (c), until the number of dirty pages becomes small.
Once the number of dirty pages has become sufficiently small, the VM is stopped at step (d), and the registers of the CPU on which hypervisor A is running, the device states and the current dirty memory pages are copied to hypervisor B. Finally, at step (e) is the VM is resumed on hypervisor B.
There are also known “postcopy” migration methods in which the VM memory is copied after the execution host has been changed.